1. Field of the Invention
The present invention relates to a packet relay system including a plurality of nodes that relay a data packet to each other.
2. Description of the Related Art
A multihop wireless network which includes a plurality of wireless nodes, each having a packet relay function, and in which adjacent wireless nodes relay a packet to each other is known in the art. Through sequential relay of packets between wireless nodes, each wireless node can transmit a packet to a wireless node that is out of radio arrival range of the node.
A routing protocol for determining a next wireless node, to which a packet is to be transmitted, from a destination address is needed in order to relay the packet to a desired wireless node. For example, routing protocols employing a variety of schemes such as a cluster tree routing scheme which requires no routing table by employing an address allocation method, an Ad Hoc On-Demand Distance Vector (AODV) which can construct a mesh topology, and a many to one scheme which can efficiently collect data from a plurality of nodes have been standardized in the ZigBee alliance. Especially, the many to one scheme is expected to be used for applications such as sensing of environmental information and automatic reading of a meter since the scheme is considered with 1-to-N communication between a sink node and a plurality of nodes.
FIGS. 1A to 1C are schematic diagrams illustrating how packets are relayed between nodes during routing in a many to one scheme. Specifically, FIG. 1A illustrates how a Route Request (RREQ) packet is relayed when nodes b to j each set an upstream path for relaying packets to a node a which is a sink node. The node a transmits an RREQ packet assuming that a destination address is a broadcast address. A node which has received the RREQ packet relays the RREQ packet to another node. The RREQ packet includes a path cost representing a logical distance between two arbitrary nodes on the network. When relaying the RREQ packet, the node adds a link cost of a node adjacent thereto to the path cost and transmits the RREQ packet. The link cost represents a logical distance between nodes which can directly communicate on the network and is used as a basis for calculating the path cost. The link cost is calculated from the strength of reception, a packet error rate, or the like between nodes. By repeating the relay of RREQ packets in this manner, each of the nodes b to j can set an upstream path for transmitting a packet to the sink node a. That is, each of the nodes b to j can relay a packet to the sink node under optimal conditions, for example, by selecting a node corresponding to the lowest path cost as a packet relay destination node.
FIG. 1B illustrates how an RREC (Route Record) packet is relayed when a downstream path from the node a, which is a sink node, to the node h is set. The node h transmits an RREC packet including an address of the node h, assuming that the destination is the node a. A node which has received the RREC packet transmits an RREC packet including an address of the node and the number of relays to a transmission destination node. That is, a packet to which addresses are added in order of nodes d, c, b, and a is transmitted from the node h to the node a. The same procedure is performed when a downstream path is set from the node a to a different node.
FIG. 1C illustrates how a packet is relayed from a node a to a node h after a downstream path is set. The node a transmits a data packet after writing addresses to a packet header of the data packet in an order opposite to the order in which the addresses are added when the downstream path is set. A node which has received the data packet deletes an address of the node written to the packet header and transmits the data packet to a transmission destination node. In this manner, a data packet can be relayed from the node a to other nodes in order of the nodes b, c, d, and h. This routing is referred to as “source routing” since it is a path control scheme in which the transmission source node (i.e., the source node) uniquely determines a node which relays the packet.
However, the link cost calculation method used for routing according to the conventional many to one scheme is not definite. In the ZigBee specification revision 17 (ZigBee Document 05374r17), a link cost is calculated from an element such as a Link Quality Indicator (LQI). However, this has a problem in that it is difficult to calculate a correct link cost since an LQI obtained when an RREQ command is received varies. Especially, when nodes are installed over a wide area such as the outdoors, temporary link disconnection may occur, changing link conditions, due to an obstacle such as a person and a car passing between the nodes. Therefore, there is a need to provide a system that can calculate an appropriate link cost even when link conditions have been changed.
In the case of routing according to the conventional many to one scheme, to establish an upstream path to the sink node, there is a need to broadcastly transmit the RREQ packet as shown in FIG. 1A at regular intervals. The RREQ packet is retransmitted once from each node and is delivered over the entire network. Therefore, there is a problem in that the amount of information communicated in the network increases and the use efficiency of wireless bands decreases as the size of the network increases. Therefore, there is a need to provide a system that can establish an upstream path to the sink node without increasing the amount of information communicated in the network.
In addition, in the case of routing according to the conventional many to one scheme, there is a problem in that traffic congestion occurs around the sink node when transmission timings of nodes overlap since each node transmits the RREQ command to the sink node through unicast transmission as shown in FIG. 1B in order to establish a downstream path from the sink node. Therefore, there is a need to provide a system that can establish a downstream path from the sink node without causing traffic congestion.
Further, in the case of routing according to the conventional many to one scheme, when a packet has not been correctly transmitted to a destination node due to influences such as changes in node connection conditions and temporary link disconnection, an RREC command is transmitted from the destination node to the sink node in order to reestablish a downstream path from the sink node. When this process is performed, there is a problem in that it is not possible to perform the downstream communication as shown in FIG. 1C until the downstream path is reestablished. Therefore, there is a need to provide a system that can quickly transmit a packet to a destination node even when path relay has failed midway on the downstream path from the sink node.